package com.ds.infrastructure.audit.collector.annotation;

import com.ds.infrastructure.audit.collector.enums.LimitType;

import java.lang.annotation.*;

/**
 * 作用：
 *
 * @author WeiShaoying
 * @date 2020/8/5
 */

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface RateLimit {

    /**
     * 前缀
     */
    String prefix() default "";


    String key() default "";

    /**
     * 单位(秒)
     */
    int window() default 1;

    /**
     * 次数
     */
    int frequency();

    /**
     * 限流类型
     */
    LimitType limitType() default LimitType.APP;

}
